Self-configuring computerized robot control system

ABSTRACT

Apparatus constructed such that it may control various other equipment for the performance of various work tasks, even other equipment yet to be designed for work tasks yet to be designed. The apparatus comprises a central computer control means comprising (1) a dictionary storage means for tagging and storing command-specific parameters for a specific work tasks and that specific robot module to which each of the parameters belongs and (2) sequencing means to schedule said work-tasks for a plurality of said modules. The module also can be activated for the task without use of the sequencing means, e.g. by having the module request one of its own dictionary entries.

RELATED APPLICATION

A promising self-configuring robotic control system is disclosed in aU.S. patent application Ser. No. 472,642 filed on Mar. 7, 1983 byHutchins, Buote and Finn. That application relates to a robot-controlmeans which does include the ability to incorporate a number ofindependent tools or operating systems including operating systems notdefined before implementation of the robot control means by thepruchaser thereof. The invention disclosed herein may be viewed, inpart, as an improvement in the process of operating a self-configuringrobotic system of the type earlier disclosed in Ser. No. 472,642.

BACKGROUND OF THE INVENTION

This invention relates to the efficient automatic control apparatuscapable of scheduling and controlling a number of independent machines.It relates particularly to the efficient user-friendly control of anumber of work stations by a robot means.

In the provision of some computer-operated apparatus, e.g. robots, it isdesirable to provide a variety of operations in various sequences and todo so making efficient use of a central computer-control apparatus.Moreover, it has been desirable to provide computer-control systems thatwould be capable of controlling new work stations, even new apparatusfor performing work tasks which are not conceived at the time of theoriginal installation, with a minimum of waste of resources inreconfiguring and learning the modified or expanded system. This type ofproblem is best seen with respect to a computerized robot control. Forexample in a laboratory system wherein a person may use the robot tocarry out a filtration operation with one set of equipment and a mixingprocedure with another set of equipment, it may be desirable, two yearsafter the purchase of the system, to add a step for carrying outcentrifuging and, a packaging operation. Moreover, it may sometimes bedesirable to carry out the packaging operation before the mixing, or tohave a post-packaging centrifuation procedure. Availablecomputer-control apparatus for robots to efficiently achieve the variousprocesses including different sequences, and even process steps relatingto equipment only to be developed in the future, is not available.

Indeed, advanced robot-control approaches being contemplated at presentseem to be divided into two-classes: One of these is a so-called"teach-pendant" procedure which essentially does away with the need toutilize a computer programming language. Abstraction is largelyeliminated. Any sequencing of operations is stored in the control systemin a manner which limits its flexibility.

Another type of procedure is typified by those various program orprograms which are completely defined and the use of robot-independentlanguage. There is not concept of the use of a very simple,device-independent, sequencing language or use of such a language in asystem featuring acceptance of yet-to-be-defined programs for operatingyet-to-be defined-apparatus.

In many commerical operations, teaching a single conventional computerlanguage to the operator, sometimes a new language for differentmodules, presents a major problem in economic assimilation of the robotapparatus into the plant or laboratory. The present inventor has set outto simplify the language problem while maintaining great flexibility inthe operating capabilities of his control system.

SUMMARY OF THE INVENTION

It is a principle object of the present invention to provide a computercontrol system, particularly a control system for robots, which may bereadily and efficiently used to control a plurality of work stations andtools, particularly work stations and tools which carry all of their ownintelligence undefined at the time the system is placed into use by itspurchaser.

Another object of the invention is to provide such computer controlsystem which can be more effectively, easily, and efficiently utilizedin selecting sequences of operations for different tools or workstations.

Another object of the invention is to provide a simple computer controlmeans utilizing a non-complex computer language, one utilizing a "teachand name" concept and having no requirement that it describe requestedwork tasks in abstract terms.

Another object of the invention is to provide a decoding or dictionarymeans which comprises at least one part defined with respect to theentire computer system and another part defined only with respect to theintelligence-bearing work station, or module, which is to carry out therequested work task.

Other objects of the invention will be obvious to those skilled in theart on this reading of the subject application.

These above objects have been substantially achieved by utilizing aprocess whereby one operates a robot module; e.g. from a keyboard, withthe computer system control means to generate its own command-specificparameters for a specific work task. In so doing, the module uses itsown intelligence. The module code causes to be recorded in a temporarybuffer memory of the computer system, all necessary parameters toreproduce the operation. When the operation, or "work task", is sodefined in the system, the operator can elect to name it whatever hewishes to name it and transfer the parameters to the systems"dictionary". These parameters then become a major part of thedefinition of the "name". This part of the definition is "owned" by themodule. Thus these parameters can only be interpreted and utilized withthe aid of the intelligence, i.e. the code of the "owner" module. Thedictionary entry also contains the identity of the module owner and, ofcourse, the name by which it has been tagged.

A given module can be utilized to create a large number of dictionaryentries and the systems can accommodate a large number of modules.

These dictionary names will usually be selected from normal operationallanguage of the plant or laboratory. Therefore, taken together, thesenames form a simple, device-independent, yet subtle and powerful,computer language.

When one wished to run a "program" one simply enters the list of namesrepresentative of the list of functions that one wishes to beaccomplished by the group of robot modules.

The control system looks up the names, now taken to be commands from thecentral processing unit, gives over to the appropriate module theinformation from the command-specific operating parameters of thedictionary entry. The module performs the action (utilizing its ownmodule intelligence as to how the operation should be performed). It isto be noted particularly that the code of the central processing system,in the preferred systems of the invention, is not generally capable ofcarrying out the operation which it has directed to be performed in theway that the specific operation should be performed under any given setof circumstances.

The relatively simple language allows proper sequencing commands fortool operations such as a robot, manipulative processes carried out bymanipulators of various types associated with the robot, and commandsfor other power and event control procedures associated with theapparatus. Since the language, used as taught herein, is independent ofspecific tools or devices, it can provide any sequence of operations ofthe various tools or devices.

The tag used in the Dictionary allows, the control system to accesscertain command specific parameters and that, specific work station, ortool, to which the procedure is to be directed by the system. What thecontrol system can do with the command-specific parameters is to sendthem to the robot module.

Each tool or work station, can have a large number of procedures storedwith appropriate distinct tags in the dictionary.

ILLUSTRATIVE EXAMPLE OF THE INVENTION

In this application and accompanying drawings there is shown anddescribed a preferred embodiment of the invention and suggested variousalternatives and modifications thereof, but it is to be understood thatthese are not intended to be exhaustive and that other changes andmodifications can be made within the scope of the invention. Thesesuggestions herein are selected and included for the purposes ofillustration in order that others skilled in the art will more fullyunderstand the invention and the principles thereof and will be able tomodify it and embody it in a variety of forms, each as may be bestsuited to the condition of a particular case.

FIG. 1 is a block diagram of the self-configuring robotic system;

FIG. 2 is a block diagram showing the module of FIG. 1 in greaterdetail; and,

FIG. 3 is a data flow diagram illustrating the data flow paths in theself-configuring robotic system.

FIG. 4 is an overall schematic diagram of the control process of theinvention.

FIG. 5 is a more detailed schematic diagram of the functions associatedwith operation of a robotic module with the control system controls.

FIG. 6 illustrates the sequence of functions associated with entering alow-level "dictionary entry" for a specific action to be taken by arobot module. If the entry proves storable (no interference such aswould be caused by another entry with the same name, etc.) it is"permanently stored in the System Dictionary.

FIG. 7 is a schematic diagram illustrative of the step in preparation ofa simple program means for sequencing specific action of, i.e.work-tasks of a number of robot modules.

FIG. 8 is a indication of the sequence of steps in implementing thecontrol process described in FIGS. 4 through 7.

FIG. 9 is a schematic view of the architecture of a robot control systemstructured according to the invention.

DETAILED DESCRIPTION OF THE INVENTION

Turning now to FIGS. 1 and 3, there is shown in block diagram form arobotic system and indicated generally by the reference numeral 10. Thissystem is a self-configuring robotic system of a type with which thepresent invention is advantageously utilized. The robotic system 10utilizes a conventional computer 12 having an operating systemcontaining at least a nucleus, a sequence reprogrammer and task supportservices. Computer bus 14 includes at least data, address and read/writelines 16 that are electrically connected through physically separableconnections 18 to a module indicated generally by the reference numeral20.

The structure of module 20 will be discussed below in connection withFIG. 2. For now, it is sufficient to note that module 20 is electricallyconnected to a robot 22. The term "robot", as used herein, means: "Areprogrammable, multifunction manipulator designed to move material,parts, tools, or specialized devices through variable programmed motionsfor the performance of a variety of tasks.". This is the definition forthe term "robot" that has been adopted by The Robitics Institute ofAmerica.

As shown in FIG. 1, the robotic system of the present invention includesat least on other module (M²) that is electrically connected to autilization means 24. The utilization means 24 can comprise eitheranother robot 22 or a means for performing a defined task. Expansion ofthe robotic system is provided for through the use of additionalutilization means and associated modules, e.g. module (M^(n)).

The detailed structure of modules 20 is illustrated in the block diagramof FIG. 2. Each module contains all of the device intelligence 26 forits associated device 28. Device 28 generaically represents thepreviously mentioned robot 22 and utilization means 24. The module 20also contains a control block 30 having a control block flag and astarting offset for computer 12 and an appropriate input/outputinterface 32 between the computer 12 and the device 28. If desired, themodule 20 can also include device memory 36 represented by the dashedlines in FIG. 2.

The device intelligence 26 contained within module 20 can be stored in avariety of conventional forms. For example, the device intelligence canbe stored in read-only memories (ROM'S).

It will be appreciated from the preceding description of the hardwardstructure of the robotic system that each device 28, whether it be arobot 22 or a utilization means 24, has an associated module 20 thatcontains all of the intelligence for the particular device. Theassociated module also provides a control block flag and starting offsetfor the computer and an appropriate I/O interface between the computerand device 28. Each module is electrically connected to the commoncomputer bus 14 through a plurality of the separable electricalconnections 18. It should be noted that all of the device intelligenceis on the device side of the physical interface formed by the separableelectrical connections 18.

Thus, in configuring or reconfiguring a system, it is possible to simplyplug the appropriate device module 20 into the computer bus 14 becauseof the module contains all of the corresponding device intelligence, theappropriate control block information for computer 12 and theinput/output interface between the device and the computer. Thisparticular system architecture greatly simplifies the implementation andconfiguration of a specific robotic system to accommodate the needs ofan end user. Since the device and its associated module constitute aseparable unit, various task-performing devices can be attached to orremoved from the robotic system 10 simply by plugging in or removing theappropriate module 20.

Turning now to FIG. 3, there is shown a data flow diagram for therobotic system of the present invention. Referring to the upperrighthand corner of FIG. 3, device 28 is initially programmed using thedevice intelligence to produce a data block containing a deviceidentifying prefix, data block name selected by the "End User" anddevice parameters for the specific device. The data block is saved in adictionary that contains a plurality of data blocks each with prefix andname and associated device parameters. The sequence intelligence forcontrolling the sequential operation of the devices is contained in aprogram for computer 12. The program, which has the dictionary names,defines the sequence in which the data blocks are obtained from thedictionary and executed. The sequence intelligence and the dictionaryneed not be able to decode the device parameters, as indicated by theshaded sections of the data blocks under sequence intelligence anddictionary in FIG. 3. By way of illustration, FIG. 3 depicts the dataflow for execution of Name 3 from the dictionary. A command is issued tothe device intelligence to pass the "Name 3" device parameters to theprefix identified device 28 causing operation of the device inaccordance with the sotred device parameters.

Referring to FIG. 4, it is seen that the control process of theinvention, comprehensively viewed, includes a step wherein the moduleintelligence is taught by an operator, through the system controls, apaticular operation, for example to go to a certain place and retrieve atest-tube from a rack and then to bring the test tube to another processstation A. The module's memory can receive this teaching, but is is theintelligence carried by the module that will subsequently decide how theinstruction will be carried out. Thus a robot told to go to a certainplace may itself decide how it gets there by knowning where it is whenthe instruction is given, what obstacles are in its path, whetheranother earlier operation on which the test tube moving is dependent hasbeen carried out, etc.

FIGS. 5 through 8 related to the control system as it is implemented byprogram code during the steps shown in FIG. 4 as 5, 6, 7, 8respectively.

As seen in FIG. 5, during the teaching step the command-specificparameters for the task or "device action" are stored in a temporarydictionary entry area. The area can be in the module itself or the mainsystem. It is often convenient to have a memory section in the main CPUwhich is "owned by" a specific module instead of in the module itself.The task parameters are to be one component of a Dictionary entry whichdefines the task, the module which is to use its intelligence ininterpreting the task, and the name with which the operator chooses totag the task parameters. This storage is shown in FIG. 6.

FIG. 6 also illustrates that when the temporary dictionary entry iscomplete, the entire entry can be transferred from its temporary buffermemory section to a more permanent System Dictionary.

FIG. 7 illustrates the fact that, in programming an entire sequence ofmodule operations for the same or different modules, one will assemble aseries of command entries, i.e. action names. However, it is to be notedthat these command entries taken together form a very simple,operator-selected, program language that is at once highly effective andversatile.

In typical situation, the name of the action will be one having a highlyspecific meaning for the operation. For example, it may be "Tube-to-A".Once the storage in the System dictionary is complete, the mere call forusing of the action name will cause the "Tube-to-A" action to beintelligently controlled by the code of intelligence-bearing module.

As shown in FIG. 8, the process will function, when a specific commandname is given, by selecting that name in the dictionary, selecting withit the identify of the the module owning the entry and selecting alsothe task-defining parameters stored as part of the dictionary entry. Themodule then performs whatever action has been defined for it, but doesso using its own logic and intelligence. Thus if instructed to go to acertain point in space, it will, typically, chose a path that makes thebest sense, i.e. the one that is shorter.

In the description of the system, it will be noted that thecommand-specific parameters are stored in temporary buffer memory beforebeing committed to the dictionary. This serves an important advantage inthe process described herein, because it avoids having to commitextraneous information to the permanent memory. Thus, in a simpleexample, when a robot position to be named "A" is established, one canput "A" in the permanent memory and the move through a series ofintermediate positions to position to be named B. The intermediateposition will not be placed in the memory when B is "named" for thepermanent dictionary by being placed in permanent memory.

However, it should be understood that a sequence dictionary entries canalso be given a single dictionary name if desired using the system ofthe invention. In this sense, the sequences itself can be operated as anindependent module or "work station".

It is important to understand that the central processing system will,normally have no control over how the module performs its assigned taskover and above the relatively simple instruction contained in thedictionary ordering that the task be undertaken.

An important aspect of the process for operating robot modules is thatthe simple computer language used is independent of the modules orindividual robot devices. Thus a system approach is readily implemented.When a system containing several modules is run under program control,inter-module co-operation is imposed by the sequencing Control.

It is also to be realized that the system taught herein need not beutilized with a self-configuring robot of the type described in FIGS.1-3 for particular advantages to be realized. Indeed, even in systemswhere the number of robotic modules were fixed absolutely, there couldbe very substantial advantage to utilizing the "teach-a-name" dictionaryand the simple sequencing-language-moderated process aspects of thepresent invention.

FIG. 9 illustrates a general control system according to the invention:

It will be seen that the dictionary is managed by a sub module 90.Dictionary module 90 provides functions to enter data in the dictionary,look up entries, delete entries, update entries and to store andretrieve the dictionary on external data.

Entries in the dictionary consists of three parts including the name ortag assigned in the "teach and name" process, an indication of whatrobot module "owns" the entry and parameters which the robot moduleitself owns and can recognize as an order to perform a particular task.It is the first two parts of the dictionary entry which are defined forthe whole system. The third part is defined only with respect to themodule which is the "entry owner".

The dictionary 90 in the schematic of FIG. 9 is the keystone of thecontrol system.

The Central Processing Unit 92 supports traditional operating systemfunctions such as task, storage and control management, message passing,and resource allocation.

It includes such hardware resources as the user terminal, the userprogram and data storage systems, and the remote computer interface.Moreover it supports user program entry, editing, and interpretation inthe Language Code 98.

It is believed that operation of these systems, with the exception ofthe self-configuring aspect and use of the temporary/permanent bimodaldictionary and sequencing language are carried out according to theknown state of the art of digital signal processing and computercontrol. Many languages and specific architectures can be utilized inconfiguring the system. Programmers and engineers experienced in thedesign of computerized control systems for robots will be able to adoptthe above technique to any number of specific systems suitable for theirpreferred language and operating requirements.

It is also to be understood that the following claims are intended tocover all of the generic and specific features of the invention hereindescribed and all statements of the scope of the invention which mightbe said to fall therebetween.

What is claimed is:
 1. A control system for operating a number ofdifferent robot modules, the improvement comprising alanguage-generating and storing means, said language generating meanscomprising means to receive command-specific operating parameters, froma robot module, and means to transfer said operating parameters, saidknown robot module identification, and a selected name for saidparameters into a dictionary storage means and program means to activatesuch operating parameters by using said selected name as a commandsignal to transfer said parameters to said module.
 2. A control systemas defined in claim 1 wherein said system comprises a plurality of saidselected names for each of a plurality of different said robot modules,at least some of which names, themselves comprise a plurality of sets ofoperating parameters in said dictionary means, and wherein said selectednames, taken together, form a device-independent sequencing languagecontrol means for each said robot module in such system.
 3. A controlsystem as defined in claim 2 comprising:a robotic device means;a firstsaid module means for providing all of the intelligence for said roboticdevice means, said module means being electrically connected to saidrobotic device means; computer means;a first physical interface meansfor providing a plurality of separable electrical connections betweensaid computer means and said first module means so that all of theintelligence for the robotic device means is located on the roboticdevice means side of the physical interface means; means for performinga defined task; a second and different module means for providing all ofthe intelligence for said defined task performing means, said modulemeans being electrically connecting to said defined task performingmeans; and, a second physical interface means for providing a pluralityof separable electrical connections between said computer means and saidsecond module means so that all of the intelligence for the defined taskperforming means is located on the defined task performing means side ofthe physical interface means.
 4. A control system as defined in claim 2comprising:a plurality of robotic device means; a correspondingplurality of module means with each module means providing all of theintelligence for the corresponding robotic device means, and beingelectrically connected thereto; computer means; and, a correspondingplurality of physical interface means each providing a plurality ofseparable electrical connections between said computer means and thecorresponding module means so that all of the intelligence for eachrobotic device means is located on the robotic device means side of theassociated physical interface means.
 5. The control system of claim 2wherein each said physical interface means provides separable electricalconnections between said computer means and the corresponding modulemeans for at least data, address and read and write.
 6. The controlsystem of claim 5 wherein each said module means further comprises meansfor providing a control block flag and starting offset for said computermeans and means for providing an input/output interface between thecomputer means and the corresponding robotic device means.
 7. A controlsystem as defined in claim 1 comprising:a robotic device means;a firstsaid module means for providing all of the intelligence for said roboticdevice means, said module means being electrically connected to saidrobotic device means; computer means;a first physical interface meansfor providing a plurality of separable electrical connections betweensaid computer means and said first module means so that all of theintelligence for the robotic device means is located on the roboticdevice means side of the physical interface means;means for performing adefined task; a second and different module means for providing all ofthe intelligence for said defined task performing means, said modulemeans being electrically connected to said defined task performingmeans; and, a second physical interface means for providing a pluralityof separable electrical connections between said computer means and saidsecond module means so that all of the intelligence for the defined taskperforming means is located on the defined task performing means side ofthe physical interface means.
 8. The control system of claim 7 whereineach said physical interface means provides separable electricalconnections between said computer means and said module means for atleast data, address, and read and write.
 9. The control system of claim7 wherein said module means further comprises means for providing acontrol block flag and starting offset for said computer means and meansfor providing an input/output interface between the computer means andsaid robotic device means.
 10. A self-configuring robotic system havinga control system as defined in claim 1 and comprising:computer meanshaving a central processing unit and an operating system that containsat least a nucleus, a sequence reprogrammer and task support services;aplurality of different robotic device means; a corresponding pluralityof module means with each module means providing all of the intelligencefor the corresponding robotic device means and being electricallyconnected thereto, each said module means having means for providing acontrol block flag and starting offset for said computer means and meansfor providing an input/output interface between the computer means andthe corresponding robotic device means; and, a corresponding pluralityof physical interface means each providing a plurality of separableelectrical connections between said computer means and the correspondingmodule means so that all of the intelligence for each robotic devicemeans is located on the robotic device means side of the associatedphysical interface means.
 11. A self-configuring robotic system having acontrol system as defined in claim 1 wherein:said computer means havinga central processing unit and an operating system that contains at leasta nucleus, a sequence reprogrammer and task support services; andwherein a robotic device means having; a first module means providingall of the intelligence for said robotic device means and beingelectrically connected thereto, said first module means having means forproviding a control block flag and starting offset for said computermeans and means for providing an input/output interface between thecomputer means and said robotic device means; a first physical interfacemeans for providing a plurality of separable electrical connectionsbetween said computer means and said first module means so that all ofthe intelligence for the robotic device means is located on the roboticdevice means side of the physical interface means; means for performinga defined task; a second different module means providing all of theintelligence for said defined task performing means and beingelectrically connected thereto, said second module means having meansfor providing a control block flag and starting offset for said computermeans and means for providing an input/output interface between thecomputer means and said defined task performing means; a second physicalinterface means for providing a plurality of separable electricalconnections between said computer means and said second module means sothat all of the intelligence for the defined task performing means islocated on the defined task performing means side of the physicalinterface means.
 12. A method for self-configuring a robotic system thatcomprises:the system of claim 1; a robotic device means;a first modulemeans for providing all of the intelligence for said robotic devicemeans, said module means being electrically connected to said roboticdevice means; computer means having a central processing unit and anoperating system that contains at least a nucleus, a sequencereprogrammer and task support services;a first physical interface meansfor providing a plurality of separable electrical connections betweensaid computer means and said first module means so that all of theintelligence for the robotic device means is located on the roboticdevicemeans side of the physical interface means; a task device meansfor performing a defined task;a second module means for providing all ofthe intelligence for said defined task performing device means, saidsecond module means being electrically connected to said defined taskperforming device means; and, a second physical interface means forproviding a plurality of separable electrical connections between saidcomputer means and said second module means so that all of theintelligence for the defined task performing device means is located onthe defined task performing device means side of the physical interfacemeans;said method comprising the steps of:
 1. searching for and findingthe control block flag in one of the module means;2. creating anintialization task in response to finding the control block flag in saidone of the module means;
 3. starting said initialization task; 4.initializing the associated device means from the intelligence containedin said one module means; and,
 5. repeating steps 1 through 4 for theother module means and its associated device means.
 13. A method forself-configuring a robotic system that comprises:the system of claim 1;aplurality of different robotic device means; a corresponding pluralityof module means with each module means providing all of the intelligencefor the corresponding robotic device means, and being electricallyconnected thereto; computer means having a central processing unit andan operating system that contains at least a nucleus, a sequencereprogrammer and task support services; and, a corresponding pluralityof physical interface means each providing a plurality of separableelectrical connections between said computer means and the correspondingmodule means so that all of the intelligence for each robotic devicemeans is located on the robotic means side of the associated physicalinterface means said method comprising the steps of:1. searching for andfinding the control block flag in one of the module means;
 2. creatingan initialization task in response to finding the control block flag insaid one of the module means;
 3. starting said initialization task; 4.initializing the associated robotic device means from the intelligencecontained in said one module means; and,
 5. repeating steps 1 through 4for each one of the other robotic device means until the plurality ofrobotic device means has been initialized.